//package com.cctc.configuration;
//
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.sql.Types;
//import java.util.List;
//import org.springframework.jdbc.core.JdbcTemplate;
//import org.springframework.jdbc.core.RowMapper;
//import hysteria.contact.dao.ItemDAO;
//import hysteria.contact.domain.Item;
//
//public class ItemDAOImpl implements ItemDAO
//{
//    private JdbcTemplate jdbcTemplate;
//    
//    public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
//    {
//        this.jdbcTemplate = jdbcTemplate;
//    }
//    
//    public Item insert(Item item)
//    {
//        String sql = "INSERT INTO items(user_id,name,phone,email) VALUES(?,?,?,?)";
//        Object[] params = new Object[] { item.getUserId(), item.getName(), item.getPhone(), item.getEmail() };
//        int[] types = new int[] { Types.INTEGER, Types.VARCHAR, Types.CHAR, Types.VARCHAR };
//        jdbcTemplate.update(sql, params, types);
//        return item;
//    }
//    
//    public Item update(Item item)
//    {
//        String sql = "UPDATE items SET name = ?, phone = ?, email = ? WHERE id = ?";
//        Object[] params = new Object[] { item.getName(), item.getPhone(), item.getEmail(), item.getId() };
//        int[] types = new int[] { Types.VARCHAR, Types.CHAR, Types.VARCHAR, Types.VARCHAR, Types.INTEGER };
//        jdbcTemplate.update(sql, params, types);
//        return item;
//    }
//    
//    public void delete(Item item)
//    {
//        String sql = "DELETE FROM items WHERE id = ?";
//        Object[] params = new Object[] { item.getId() };
//        int[] types = new int[] { Types.INTEGER };
//        jdbcTemplate.update(sql, params, types);
//    }
//    
//    public Item findById(int id)
//    {
//        String sql = "SELECT * FROM items WHERE id = ?";
//        Object[] params = new Object[] { id };
//        int[] types = new int[] { Types.INTEGER };
//        List items = jdbcTemplate.query(sql, params, types, new ItemMapper());
//        if (items.isEmpty())
//        {
//            return null;
//        }
//        return (Item) items.get(0);
//    }
//    
//    public List<Item> findAll()
//    {
//        String sql = "SELECT * FROM items";
//        return jdbcTemplate.query(sql, new ItemMapper());
//    }
//    
//    public List<Item> findAllByUser(int user_id)
//    {
//        String sql = "SELECT * FROM items WHERE user_id = ?";
//        Object[] params = new Object[] { user_id };
//        int[] types = new int[] { Types.INTEGER };
//        List items = jdbcTemplate.query(sql, params, types, new ItemMapper());
//        return items;
//    }
//    
//    protected class ItemMapper implements RowMapper
//    {
//        public Object mapRow(ResultSet rs, int rowNum) throws SQLException
//        {
//            Item item = new Item();
//            item.setId(rs.getInt("id"));
//            item.setUserId(rs.getInt("user_id"));
//            item.setName(rs.getString("name"));
//            item.setPhone(rs.getString("phone"));
//            item.setEmail(rs.getString("email"));
//            return item;
//        }
//    }
//}
